Towards a Fully-reflective Meta-programming Language

نویسندگان

  • Gregory Neverov
  • Paul Roe
چکیده

The term meta-programming language is used to describe languages that have some capability for manipulating code. A multi-stage language is a kind of meta-programming language that allows static typechecking of dynamically generated code. The expressiveness and type-safety of multi-stage languages have led to their success in many applications that require code generation. This paper presents the design of a multi-stage language that is an extension to a traditional object-oriented language (e.g. C# or Java). The language has a static type system and allows types and code to be manipulated dynamically, hence giving it full re ection over the structure of a program. The language is discussed through a series of examples on run-time optimisation, serialiser generation and compiler construction. A prototype compiler for the language has been implemented which targets Microsoft's Common Language Runtime (.NET).

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Towards Linguistic Symbiosis of an Object-Oriented and a Logic Programming Language

Reflective systems have a causally connected (metalevel) representation of themselves. Most reflective systems use the same language to reason about their metalevel representation as the language that is used to reason about their domain. In symbiotic reflection a different language is used at the metalevel. The practical usability of this symbiotic reflection is enhanced if a linguistic symbio...

متن کامل

Extending a UML and OCL Tool for Meta-Modeling: Applications towards Model Quality Assessment

For developing software in a model-driven style, metaand multi-level modeling is currently gaining more and more attention. In this contribution, we propose an approach to extend a two-level modeling tool to three-level modeling by adding a meta-model at the topmost level. Standard OCL does not support reflective constraints, i.e., constraints concerning properties of the model like the depth o...

متن کامل

Directly Reflective Meta - Programming ∗ Aaron

Existing meta-programming languages operate on encodings of programs as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective programming is supported directly, without any encoding. The language features call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional man...

متن کامل

Directly reflective meta-programming

Existing meta-programming languages operate on encodings of programs as data. This paper presents a new meta-programming language, based on an untyped lambda calculus, in which structurally reflective programming is supported directly, without any encoding. The language features call-by-value and call-by-name lambda abstractions, as well as novel reflective features enabling the intensional man...

متن کامل

The next 700 reflective object-oriented languages

Since Smith seminal work, there have been numerous reflective language definition and implementation proposals. These proposals, initially restricted to functional languages, have been quickly extended to object-oriented languages. Unfortunately, reflective objectoriented language definitions remained mostly ad hoc. In this paper, we present a generic reification technique which enables the sel...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2005